﻿using System;

namespace MosCraft
{

    /// <summary>
    /// Handles the state of chunks
    /// </summary>
    public enum ChunkState
    {
        AwaitingGenerate,
        Generating,
        AwaitingBuild,
        Building,
        Ready,
        needsVBO,
        AwaitingPopulation,
        AwaitingRebuild,
        ToDelete
    }

    /// <summary>
    /// Used for the render pass Solid for most blocks
    /// Alphas for anything that are partially transparent
    /// </summary>
    public enum RenderPass
    {
        Solids,
        Blended,
    }

    /// <summary>
    /// Used for Entity Direction
    /// </summary>
    public enum EntityDirection
    {
        Up,
        Down,
        North,
        South,
        East,
        West
    }

    /// <summary>
    /// Used to store what side the player
    /// is looking at on a block
    /// </summary>
    public enum BlockFace
    {
        None, //?
        Right,
        Left,
        Top,
        Bottom,
        Front,
        Back
    }

    /// <summary>
    /// The render type that the block should be processed as
    /// </summary>
    public enum RenderMode
    { 
        STANDARD, 
        CROSS, 
        STEP, 
        HALFBLOCK
    }

    /// <summary>
    /// Tracks the the type of damage to an entity
    /// </summary>
    public enum DamageCause
    {
        Contact,
        EntityAttack,
        Projectile,
        Suffocation,
        Fall,
        Fire,
        FireBurn,
        Lava,
        Drowning,
        BlockExplosion,
        EntityExplosion,
        Void,
        Lightning,
        Cactus,
        Custom
    }

    /// <summary>
    /// Tracks what the Entity is looking at either
    /// a block or another Entity
    /// </summary>
    public enum RayTraceType
    {
        Tile,
        Entity
    }
}
